package com.sonotec.scap.ventas.action;

import java.util.List;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
import com.sonotec.scap.ventas.model.TCliente;
import com.sonotec.scap.ventas.service.BuscarClienteService;

public class BuscarClienteAction extends ActionSupport 
{
	
	private static final long serialVersionUID = 1L;
	private String mensaje;
	private List<TCliente> listaClientes;
	private TCliente encontrado;
	private String condicion;
	private String dni;
	private String nombre;
	private String apellido;
	
	private BuscarClienteService service;
	
	public BuscarClienteAction(){
		service = new BuscarClienteService();		
	}
	
	public String execute(){
		return Action.SUCCESS;
	}
	
	public String buscar(){
		String retorno = Action.SUCCESS;		
		
		//Si el campo de busqueda no es null
		if(!dni.equals(""))
		{			
				try{
					encontrado =  service.BuscarCliente(Integer.parseInt(dni));	
					if (encontrado == null)
					{
						mensaje = "Cliente no encontrado";	
						dni="";
						apellido="";
						nombre="";
						retorno = Action.INPUT;	
					}		
					
				}
				catch(Exception e)
				{
					mensaje = e.getMessage();
					retorno = Action.INPUT;
					
				}
					
		}
		else if (!apellido.equals(""))
		{
			
			try{
				encontrado =  service.BuscarCliente(apellido);	
				if (encontrado == null)
				{
					mensaje = "Cliente no encontrado";	
					dni="";
					apellido="";
					nombre="";
					retorno = Action.INPUT;	
				}		
				
			}
			catch(Exception e)
			{
				mensaje = e.getMessage();
				retorno = Action.INPUT;
				
			}
			
						
		}
		else if (!nombre.equals(""))
		{
			
			try{
				encontrado =  service.BuscarCliente(nombre);	
				if (encontrado == null)
				{
					mensaje = "Cliente no encontrado";	
					dni="";
					apellido="";
					nombre="";
					retorno = Action.INPUT;	
				}		
				
			}
			catch(Exception e)
			{
				mensaje = e.getMessage();
				retorno = Action.INPUT;
				
			}
			
						
		}
		else
		{
			try
			{				
				listaClientes = service.BuscarTodos();
				if (listaClientes.size() == 0)
				{
					mensaje = "Cliente no encontrado";	
					retorno = Action.INPUT;						
				}			
				
			}
			catch (Exception ex){				
			
				mensaje = ex.getMessage();
				retorno = Action.ERROR;
			}	
		}
		
		
		return retorno;
	}
	
	

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}

	public List<TCliente> getListaClientes() {
		return listaClientes;
	}

	public void setListaClientes(List<TCliente> listaClientes) {
		this.listaClientes = listaClientes;
	}

	public String getCondicion() {
		return condicion;
	}

	public void setCondicion(String condicion) {
		this.condicion = condicion;
	}

	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public TCliente getEncontrado() {
		return encontrado;
	}

	public void setEncontrado(TCliente encontrado) {
		this.encontrado = encontrado;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}	
	
	
	
	
	
}
